import AttributeUtil from "@/AttributeUtil";
import UnitEvent from "@/event/UnitEvent";
import { 英雄升级配置数据 } from "框架/数据配置/英雄配置";

export default class 英雄升级系统 {
  static 配置: 英雄升级配置 = 英雄升级配置数据;
  constructor() {
    for (let key in 英雄升级系统.配置) {
      let 英雄升级配置 = 英雄升级系统.配置[key];
      let 属性 = AttributeUtil.getUnitTypeAttribute(key, true);
      属性.自定义敏捷 = 英雄升级配置.初始敏捷;
      属性.自定义智力 = 英雄升级配置.初始智力;
    }
    se.onHeroLevelUp(this.action);
  }
  action(this: void, e: UnitEvent) {
    let 属性 = AttributeUtil.getUnitAttribute(e.trigUnit, true);
    if (属性 == null) return;
    let 配置数据 = 英雄升级系统.配置[e.trigUnitTypeIdStr];
    属性.自定义敏捷 = (属性.自定义敏捷 ?? 0) + (配置数据.敏捷成长 ?? 0);
    属性.自定义智力 = (属性.自定义智力 ?? 0) + (配置数据.智力成长 ?? 0);
  }
}
